package com.wonking.springbootv2.aop;

import java.util.Arrays;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.DeclareParents;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;

 

@Aspect
public class MyAspect {
	/*
	    标识这个方法是个前置通知,  切点表达式表示执行任意类的任意方法.
	    第一个 * 代表匹配任意修饰符及任意返回值, 
	    第二个 * 代表任意类的对象,
	    第三个 * 代表任意方法,
	    参数列表中的 ..  匹配任意数量的参数
	 */ 
	@Before("execution (* com.wonking.springbootv2.aop..*.*(..))")
    public void beforeMethod(JoinPoint joinPoint){
	     String methodName = joinPoint.getSignature().toString();
         Object result= Arrays.asList(joinPoint.getArgs());
	     System.out.println("The method name:"+methodName+"--value:"+result);
    }

 
}
